网络:HTTP_1 性能优化
HTTP/0.9
- 用来在网络之间传递 HTML 超文本的内容
 

- 请求流程
- 基于 TCP 协议,客户端根据 IP 地址,端口和服务器建立连接
 - 发送 GET 请求行
 - 服务器收到请求信息后,读取对应的 HTML 文件,将数据以 ASCII 字符流返回客户端
 - HTML 文档传输完成后断开连接
 
 - 特点
- 只有请求行
 - 服务器没有返回头
 - 返回文件以 ASCII 字符流传输
 
 
HTTP/1.0
- 浏览器展示内容
- HTML 文件,JavaScript,CSS,图片,音频,视频
 - 需要支持多种类型文件下载
 - 文件格式需要支持其他编码
 
 

- 请求头
- 告诉服务器期待返回的内容
 - 文件类型
 - 压缩方式
 - 文件语言
 - 文件编码
 - 用户代理
 
 - 响应头
- 状态码
 - Cache 机制
 
 
// request header
accept: text/html
accept-encoding: gzip, deflate, br
accept-Charset: ISO-8859-1,utf-8
accept-language: zh-CN,zh
// response header
content-encoding: br
content-type: text/html; charset=UTF-8
HTTP/1.1
- 持久连接
- 同一个域名,默认允许同时建立 6 个 TCP 持久连接
 - 存在队头阻塞
 
 


- HTTP 管线化
- 整批发送请求
 - 服务器依然需要根据请求顺序来回复浏览器的请求
 
 - 支持虚拟主机
- Host 字段:一台物理主机上绑定多个虚拟主机,每个虚拟主机都有自己的单独的域名,这些单独的域名都公用同一个 IP 地址,请求头中增加了 Host 字段,用来表示当前的域名地址,这样服务器就可以根据不同的 Host 值做不同的处理
 
 - 对动态生成的内容支持
- Chunk transfer 机制
- 将数据分割成若干个任意大小的数据块
 - 每个数据块发送时会附上上个数据块的长度
 - 最后使用一个零长度的块作为发送数据完成的标志
 
 
 - Chunk transfer 机制
 - 客户端 Cookie
 - 安全机制